Micron Document
πŸŽ–οΈGitΠ―Ρ€Π°πŸŽ–οΈ


Displaying Rendered β€’ View raw β€’ Download

.agent_memory/session_context.md f5e5fb6da63ee85e64dbbe19a519a5a3deccd408 (f5e5fb6d) Text, 9.63 KB

Agent Session Context - Meshtastic Android
This is a dated, append-only handover log. Add new entries at the TOP.
Do NOT edit or remove previous entries β€” stale state claims cause agent confusion.
Format: ## YYYY-MM-DD β€” <summary>

2026-05-12 β€” Implemented Apple alignment for docs feature (FR-038)
β€’ Branch: T383838feat/20260507-161858-app-docs-markdown
β€’ Gap analysis against T383838meshtastic-apple completed. Implemented 4 alignment items:
1. Per-page TOC icons via T383838DocPageIconResolver.kt mapping T383838iconId to T383838MeshtasticIcons
2. New T383838docs/user/signal-meter.md (RSSI vs SNR, bar-level criteria, LoRa signal concepts)
3. New T383838docs/user/units-and-locale.md (automatic metric/imperial via T383838MetricFormatter)
4. New T383838.github/workflows/docs-staleness.yml (advisory PR comments for UI changes without doc updates)
β€’ Added T383838iconId: String? field to T383838DocPage and T383838KeywordIndexEntry models
β€’ Updated T383838DocBundleLoader with iconId for all 24 pages plus 2 new entries (signal-meter, units-and-locale)
β€’ Updated T383838DocsBrowserScreen to show leading icons in TOC list items
β€’ Marked T061-T085 as completed in tasks.md (were implemented in prior session)
β€’ Added Phase 9 (T200-T206) for Apple alignment tasks β€” all marked complete
β€’ Skipped Apple-only features: watch, carplay, translate, TipKit, SwiftData docs
β€’ Verified: T383838spotlessApply, T383838detekt, T383838assembleDebug, T383838compileKotlinJvm β€” all green

2026-05-11 β€” Migrated feature/intro UI to commonMain
β€’ Moved intro onboarding UI composables and nav graph from T383838feature/intro/src/androidMain/ into T383838feature/intro/src/commonMain/, adding shared T383838IntroPermissions and T383838IntroSettingsNavigator interfaces plus a common T383838introGraph Navigation 3 extension.
β€’ Refactored T383838AppIntroductionScreen into a thin Android host that provides Android permission/settings adapters via composition locals, and added T383838AndroidIntroPermissions, T383838AndroidIntroSettingsNavigator, and JVM desktop no-op stubs.
β€’ Verified with T383838./gradlew spotlessApply :feature:intro:compileKotlinJvm :feature:intro:compileAndroidMain.

2026-05-11 β€” Added Esp32OtaUpdateHandler common tests
β€’ Created T383838feature/firmware/src/commonTest/kotlin/org/meshtastic/feature/firmware/ota/Esp32OtaUpdateHandlerTest.kt.
β€’ Covered WiFi OTA success flow, download/upload progress reporting, connection-drop error handling, hash rejection, verification timeout, and cancellation propagation.
β€’ Validation note: per task instruction, no Gradle commands were run.

2026-05-11 β€” Added profile import/export round-trip coverage
β€’ Created T383838feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/ProfileRoundTripTest.kt.
β€’ Covered T383838RadioConfigViewModel.exportProfile() β†’ T383838importProfile() round trips using the real T383838ExportProfileUseCase and T383838ImportProfileUseCase with an in-memory T383838FileService test double.
β€’ Added representative, empty, and partially populated T383838DeviceProfile cases, asserting message equality and stable protobuf bytes across re-export.
β€’ Validation note: per task instruction, no Gradle commands were run.

2026-05-11 β€” Added DirectRadioControllerImpl common tests
β€’ Created T383838core/service/src/commonTest/kotlin/org/meshtastic/core/service/DirectRadioControllerImplTest.kt.
β€’ Covered service-repository flow delegation, send message/send shared contact behavior, remote config request delegation, location stop, and device address updates.
β€’ Validation note: T383838./gradlew --no-configuration-cache :core:service:allTests is currently blocked by pre-existing compile failures in T383838core/network (T383838MQTTRepositoryImpl unresolved T383838KEEPALIVE_SECONDS) and downstream T383838core/data unresolved T383838org.meshtastic.core.network symbols.

2026-05-11 β€” Added DatabaseManager withDb retry host test
β€’ Created T383838core/database/src/androidHostTest/kotlin/org/meshtastic/core/database/DatabaseManagerWithDbRetryTest.kt.
β€’ Covered the concurrent T383838withDb() retry path by pausing an in-flight query, switching to a new DB, closing the old pool, and asserting the retried query succeeds against the new DB.
β€’ Verified with T383838./gradlew --no-configuration-cache :core:database:spotlessApply :core:database:testAndroidHostTest --tests "org.meshtastic.core.database.DatabaseManagerWithDbRetryTest"
and T383838./gradlew --no-configuration-cache :core:database:spotlessCheck :core:database:testAndroidHostTest.

2026-05-11 β€” Expanded MQTT repository coverage
β€’ Extended T383838core/network/src/commonTest/kotlin/org/meshtastic/core/network/repository/MQTTRepositoryImplTest.kt
with topic construction, JSON/protobuf decoding, reconnect retry, subscription retry, and connection-state coverage.
β€’ Added internal T383838MqttClientSession / T383838MqttClientSetup test hook plus T383838updateConnectionState() in
T383838core/network/src/commonMain/kotlin/org/meshtastic/core/network/repository/MQTTRepositoryImpl.kt to exercise repository behavior without a real broker.
β€’ Verified with T383838./gradlew --no-configuration-cache :core:network:allTests.

2026-05-11 β€” Added RadioConfigViewModel MQTT probe tests
β€’ Extended T383838feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModelTest.kt
with MQTT probe success, timeout, thrown-exception-to-Other, and clear/reset coverage.
β€’ Verified with T383838./gradlew --no-configuration-cache :feature:settings:jvmTest --tests "org.meshtastic.feature.settings.radio.RadioConfigViewModelTest".

2026-05-11 β€” Added MeshRouterImpl accessor routing tests
β€’ Created T383838core/data/src/commonTest/kotlin/org/meshtastic/core/data/manager/MeshRouterImplTest.kt.
β€’ Covered lazy routing access for action-handler send/request/admin calls, traceroute handler access, and service-action passthrough.
β€’ Verified with T383838./gradlew --no-configuration-cache :core:data:allTests.

2026-05-11 β€” Added SettingsViewModel saveDataCsv coverage
β€’ Extended T383838feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/SettingsViewModelTest.kt
with T383838saveDataCsv writes filtered export via file service.
β€’ The new test seeds T383838FakeNodeRepository + T383838FakeMeshLogRepository, captures the T383838FileService.write()
sink with Mokkery, and verifies filtered CSV output from the real T383838ExportDataUseCase.
β€’ Verified with T383838./gradlew --no-configuration-cache :feature:settings:jvmTest --tests "org.meshtastic.feature.settings.SettingsViewModelTest"
after running T383838:feature:settings:spotlessApply.

2026-05-11 β€” Added CompassViewModel accuracy edge-case tests
β€’ Extended T383838feature/node/src/commonTest/kotlin/org/meshtastic/feature/node/compass/CompassViewModelTest.kt
with PDOP-only, HDOP+VDOP, HDOP-only, precision-bits fallback, missing accuracy metadata,
zero-distance angular error, and very-small-distance angular error coverage.
β€’ Validation note: T383838:feature:node:allTests still fails on the pre-existing
T383838MetricsViewModelTest.saveEnvironmentMetricsCSV writes correct data Turbine timeout in JVM and Android host tests.
The new CompassViewModel tests pass in the same run.

2026-05-11 β€” Added Node domain model tests
β€’ Created T383838core/model/src/commonTest/kotlin/org/meshtastic/core/model/NodeTest.kt.
β€’ Covered T383838isOnline, T383838distance, T383838bearing, T383838colors, T383838createFallback, T383838getRelayNode, T383838isUnknownUser, T383838validPosition, T383838hasPKC, and T383838mismatchKey.
β€’ Validation blockers: T383838:core:model:allTests currently fails on pre-existing T383838DataPacketTest iOS compile errors, and direct T383838NodeTest execution hits an existing class-version mismatch in T383838core:common helpers.

2026-05-11 β€” Added HeartbeatSender transport tests
β€’ Created T383838core/network/src/commonTest/kotlin/org/meshtastic/core/network/transport/HeartbeatSenderTest.kt.
β€’ Covered encoded heartbeat payloads, nonce sequencing, interval-driven scheduling, cancellation, zero-interval behavior, and restart semantics using coroutine virtual time.
β€’ Verified with T383838./gradlew --console=plain --no-configuration-cache :core:network:allTests.

2026-05-11 β€” Added BaseMapViewModel waypoint expiration tests
β€’ Extended T383838feature/map/src/commonTest/kotlin/org/meshtastic/feature/map/BaseMapViewModelTest.kt.
β€’ Added coverage for future, boundary (T383838expire == now), never-expiring (T383838expire == 0), and mixed waypoint filtering.
β€’ Verified with T383838./gradlew --no-daemon --no-configuration-cache :feature:map:spotlessCheck :feature:map:allTests.

2026-05-03 β€” Switched Gradle GC to G1GC
β€’ Replaced T383838-XX:+UseZGC with T383838-XX:+UseG1GC in T383838gradle.properties to resolve "not supported" error.
β€’ Added T383838-XX:+ParallelRefProcEnabled for better build performance.
β€’ Verified with Gradle sync.

2026-05-02 β€” CI cost-control PR review fixes
β€’ Applied PR review feedback: encoding fixes in sort-strings.py, NUL-delimited staged-files loop
in ai-guardrail.sh, installation instructions added, typo fix in strings.xml, command order
fixed in AGENTS.md, narrowed .aiexclude/.gitattributes patterns, allTests added to SKILL.md.

2026-04-XX β€” Token Mitigation (Phase 1-3)
β€’ T383838.copilotignore and T383838.aiexclude updated with stricter ignore rules.
β€’ T383838AGENTS.md modularized to ~3KB base; detailed rules moved to T383838.skills/.
β€’ T383838scripts/ai-guardrail.sh added to prevent binary/log leaks (installation: see script header).
β€’ CI Cost Control skill added at T383838.skills/ci-cost-control/SKILL.md.

Golden Context (stable across sessions)
β€’ Always check T383838.skills/compose-ui/strings-index.txt before reading T383838strings.xml.
β€’ Run T383838python3 scripts/sort-strings.py after adding strings to keep the index organized.
β€’ Always check T383838gh run list before pushing.
β€’ Pre-commit hook T383838scripts/ai-guardrail.sh protects against binary leaks (see script for install).

Served by rngit 1.5.2 - Generated in 0.03s